﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

using ProjectBase.Core;
using ProjectBase.Core.Web;
using ProjectBase.Mvc;
using ProjectBase.Mvc.Models;

using $prjsn$.Common.Models;

namespace $safeprojectname$.Models
{
    /// <summary>
    ///     Contains needed data for Home page handling
    /// </summary>
    public class LayoutModel : WebModel, ILayoutModel
    {
        #region members
        IList<ISelectMasterPageItem> _masterPageSelectors;
        #endregion members

        public virtual ITreeViewModel TreeViewModel { get; set; }
        public virtual ICurrentUserModel CurrentUserModel { get; set; }
        /// <summary>
        ///     Collection of items to be rendered on UI and filled in AOP.
        ///     They should provide ability for the user
        ///     to decide which template for which window should be used
        /// </summary>
        public virtual IList<ISelectMasterPageItem> MasterPageSelectors
        {
            get { return _masterPageSelectors ?? (_masterPageSelectors = new List<ISelectMasterPageItem>()); }
        }
    }
}